package com.jh.paymentchannel.service;

import cn.jh.common.exception.ServiceException;
import com.alipay.api.AlipayApiException;
import com.jh.paymentchannel.pojo.AlipayAuthToken;
import com.jh.paymentchannel.pojo.WeixinServiceNo;
import org.jetbrains.annotations.NotNull;

import java.sql.SQLException;

public interface PassagewayConfigureService {

    WeixinServiceNo queryWeixinServiceNo(WeixinServiceNo weixinServiceNo)throws SQLException;

    WeixinServiceNo findWeixinServiceNo(String shopId);

    WeixinServiceNo saveWeixinServiceNo(WeixinServiceNo weixinServiceNo) throws ServiceException;

    /**
     * 查询指定商户的支付宝授权信息
     *
     * @param shopId 商户id
     * @return 返回支付宝授权信息
     */
    AlipayAuthToken findAlipayAuthToken(@NotNull String shopId);

    /**
     * 更新支付宝授权二维码
     *
     * @param updateToken 支付宝授权信息
     * @return 返回支付宝授权信息
     */
    AlipayAuthToken updateAuthToken(AlipayAuthToken updateToken);

    /**
     * 处理支付宝授权
     *
     * @param shopId 商户id
     * @param appAuthCode 授权码
     * @return 返回支付宝授权信息
     */
    AlipayAuthToken alipayOpenAuthToken(String shopId, String appId, String appAuthCode) throws AlipayApiException;
}
